/* Open N instances of Stata to speed up processing
see call_length.do for further comments */
local dir `c(pwd)'
capture mkdir stata_files
use data_bible_final, clear

gen random=runiform()

egen group = cut(random), group(`1') label

replace group=group+1	
sum group
local min=r(min)
local max=r(max)

forvalues g=`min'/`max' {
	preserve
	keep if group==`g'
	save "`dir'\\calculation_`g'", replace
	winexec C:\Program Files (x86)\Stata14\StataMP-64 -q do `dir'\\entropy_calculation `g'
	restore
}

/* wait until everything is finished */
clear
 forvalues g=1/`1'{  
   capture confirm file finished_`g'.dta
   while _rc != 0 {
      sleep 2000
      capture confirm file finished_`g'.dta
   }
 }
use  entropy_bible_1, clear 
drop in 1/l
forvalues g=1/`1' {
	capture append using entropy_bible_`g'
	capture erase entropy_bible_`g'.dta
	capture erase calculation_`g'.dta
	capture erase finished_`g'.dta
}
drop if entropy_original==.

/* calc D values */
foreach type in original order structure {
gen H_`type'=(entropy_`type'/chars_`type')^(-1)

} 

drop if H_original==.

generate D_structure=H_structure-H_original
generate D_order=H_order-H_original

save entropy_bible, replace 
   	
exit